package com.iris.live.services.data.models;

import com.fasterxml.jackson.annotation.JsonIgnore;

import javax.persistence.*;
import java.sql.Timestamp;

/**
 * Created by xin on 2016/7/31.
 */
@SuppressWarnings("JpaDataSourceORMInspection")
@Entity
@Table(name = "LSH金融季度额外奖励", schema = "sg_lsh", catalog = "")
public class Lsh金融季度额外奖励Model {
    private Integer 金融季度额外奖励编号;
    private Integer 金融机构编号;
    private String 许可;
    private String 起始范围;
    private String 结束范围;
    private Double 额外奖励;
    private String 更新账号;
    private Timestamp 更新时间;
    private Lsh金融机构设置Model lsh金融机构设置Model;

    @ManyToOne
    @JoinColumn(referencedColumnName = "金融机构编号", name = "金融机构编号", insertable = false, updatable = false)
    @JsonIgnore
    public Lsh金融机构设置Model getLsh金融机构设置Model() {
        return lsh金融机构设置Model;
    }

    public void setLsh金融机构设置Model(Lsh金融机构设置Model lsh金融机构设置Model) {
        this.lsh金融机构设置Model = lsh金融机构设置Model;
    }

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "金融季度额外奖励编号")
    public Integer get金融季度额外奖励编号() {
        return 金融季度额外奖励编号;
    }

    public void set金融季度额外奖励编号(Integer 金融季度额外奖励编号) {
        this.金融季度额外奖励编号 = 金融季度额外奖励编号;
    }

    @Basic
    @Column(name = "金融机构编号")
    public Integer get金融机构编号() {
        return 金融机构编号;
    }

    public void set金融机构编号(Integer 金融机构编号) {
        this.金融机构编号 = 金融机构编号;
    }

    @Basic
    @Column(name = "许可")
    public String get许可() {
        return 许可;
    }

    public void set许可(String 许可) {
        this.许可 = 许可;
    }

    @Basic
    @Column(name = "起始范围")
    public String get起始范围() {
        return 起始范围;
    }

    public void set起始范围(String 起始范围) {
        this.起始范围 = 起始范围;
    }

    @Basic
    @Column(name = "结束范围")
    public String get结束范围() {
        return 结束范围;
    }

    public void set结束范围(String 结束范围) {
        this.结束范围 = 结束范围;
    }

    @Basic
    @Column(name = "额外奖励")
    public Double get额外奖励() {
        return 额外奖励;
    }

    public void set额外奖励(Double 额外奖励) {
        this.额外奖励 = 额外奖励;
    }

    @Basic
    @Column(name = "更新账号")
    public String get更新账号() {
        return 更新账号;
    }

    public void set更新账号(String 更新账号) {
        this.更新账号 = 更新账号;
    }

    @Basic
    @Column(name = "更新时间")
    public Timestamp get更新时间() {
        return 更新时间;
    }

    public void set更新时间(Timestamp 更新时间) {
        this.更新时间 = 更新时间;
    }

    @PrePersist
    @PreUpdate
    public void onPreUpdate() {
        this.set更新时间(new Timestamp(System.currentTimeMillis()));
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        Lsh金融季度额外奖励Model that = (Lsh金融季度额外奖励Model) o;

        if (金融季度额外奖励编号 != null ? !金融季度额外奖励编号.equals(that.金融季度额外奖励编号) : that.金融季度额外奖励编号 != null) return false;
        if (金融机构编号 != null ? !金融机构编号.equals(that.金融机构编号) : that.金融机构编号 != null) return false;
        if (许可 != null ? !许可.equals(that.许可) : that.许可 != null) return false;
        if (起始范围 != null ? !起始范围.equals(that.起始范围) : that.起始范围 != null) return false;
        if (结束范围 != null ? !结束范围.equals(that.结束范围) : that.结束范围 != null) return false;
        if (额外奖励 != null ? !额外奖励.equals(that.额外奖励) : that.额外奖励 != null) return false;
        if (更新账号 != null ? !更新账号.equals(that.更新账号) : that.更新账号 != null) return false;
        if (更新时间 != null ? !更新时间.equals(that.更新时间) : that.更新时间 != null) return false;

        return true;
    }

    @Override
    public int hashCode() {
        int result = 金融季度额外奖励编号 != null ? 金融季度额外奖励编号.hashCode() : 0;
        result = 31 * result + (金融机构编号 != null ? 金融机构编号.hashCode() : 0);
        result = 31 * result + (许可 != null ? 许可.hashCode() : 0);
        result = 31 * result + (起始范围 != null ? 起始范围.hashCode() : 0);
        result = 31 * result + (结束范围 != null ? 结束范围.hashCode() : 0);
        result = 31 * result + (额外奖励 != null ? 额外奖励.hashCode() : 0);
        result = 31 * result + (更新账号 != null ? 更新账号.hashCode() : 0);
        result = 31 * result + (更新时间 != null ? 更新时间.hashCode() : 0);
        return result;
    }
}
